class Animal: #动物类
    def speak(self):
        print("Animal makes a sound")



class Dog(Animal): #狗类
    def speak(self):  # 重写父类的speak方法
        super().speak()
        print("Dog barks")

# animal = Animal() #实例化
# animal.speak()  # 输出: Animal makes a sound

dog = Dog()
dog.speak()     # 输出: Dog barks


# 继承关系：必须存在于父类和子类之间。
#
# 同名方法：子类方法与父类方法名称相同，参数列表也相同。
#
# 动态绑定：Python会根据对象实际类型调用对应的方法（运行时多态）。